iT邦幫忙

2026 iThome 鐵人賽

DAY 4
0
AI 自動化

用 Dify 建構個人專屬 AI Agent 應用系列 第 4

用同一句 SQL 題目,實測 Dify 溫度(Temperature)調到 0 跟 1 的差別

  • 分享至 

  • xImage
  •  

昨天把提示詞寫好之後,AI 回答已經比較像個正常的技術顧問了,不會再講一堆客套話。
不過今天我想再做一個實驗,常常看到有人說寫提示詞不夠,還要調什麼「溫度(Temperature)」。聽說溫度拉低回答會很死板、很嚴謹,拉高回答會很有創意,所以今天我想親自用科學實驗的方法(控制變因)來看看它到底差在哪裡。

今天動手做了什麼?

我一開始點開Dify右上角的設定,發現有些模型根本找不到Temperature可以調,後來我換成 gpt-4o-mini,下面才跳出一堆參數滑桿。這裡我還踩了一個小坑,原來滑桿左邊那個小開關一定要點開(變成啟用狀態),不然就算把數字拉到0,系統還是會跑它原本預設的值,改完等於沒改!而且在Dify裡面,這個滑桿最多只能拉到1。

為了公平測試,我提示詞完全沒改,每次測之前我都先把對話紀錄清空,避免它被上一句影響。我丟了一模一樣的問題進去:

我問的問題:
「請用三點建議,說明如何優化一個執行緩慢的 SQL 查詢?」

實測結果:真的有差嗎?

我先測了 Temperature = 0,然後再把滑桿拉到 Temperature = 1,把兩次它給出來的原話抓出來看,發現真的有差:

  • 當我把溫度設成 0(極度嚴謹模式):

    AI 實際回答內容:

  1. 建立適當的索引:確認主要查詢中的 WHERE 條件、JOIN 條件與排序 (ORDER BY) 使用的欄位都有相應的索引。利用資料庫的查詢計劃 (EXPLAIN) 工具來分析哪些查詢未使用索引

  2. 查詢結構改進:檢視查詢語句,簡化複雜的子查詢,避免使用 SELECT ,只選擇必要的欄位。嘗試將查詢拆分成多個較小的查詢,以分散負擔

  3. 資料庫結構與設計調整:檢討資料表的設計,考慮適當的正規化或反正規化,以降低資料冗餘與提升查詢效率。定期清理無用資料,減少表的大小
    結語: 這三點能有效提升 SQL 查詢的執行效能

我的觀察: 回答超級保守,給的都是教科書上最標準的三招。如果把對話清空重問一次,它講的話幾乎一字不差

  • 當我把溫度拉到 1(最大發散模式):

    AI 實際回答內容:

  1. 索引優化:檢查查詢中使用的列是否有索引。對於頻繁查詢的列、JOIN 和 WHERE 子句中的列,應該建立合適的索引。考慮使用覆蓋索引,這樣查詢可以直接從索引中獲取所有需要的數據,而不必回表查詢

  2. 查詢重寫:分析查詢的邏輯,確保它是高效的。例如,避免使用 SELECT ,改為選擇必要的列。使用 EXISTS 取代 IN,並考慮使用 INNER JOIN 來提高查詢效能

  3. 數據庫配置調整:檢查資料庫的配置,如記憶體分配、緩衝區大小等,確保硬體資源被有效使用。定期進行資料庫的分析和碎片整理,以確保最佳的查詢性能
    結語: 這三個策略可以有效提高 SQL 查詢的執行效率

我的觀察: 核心方向差不多,但講出來的專有名詞變難很多。它不再只是叫我把查詢拆開,而是直接教我用「覆蓋索引」、「EXISTS 取代 IN」,甚至跳到系統層去叫我調「記憶體分配跟緩衝區」。

兩組實測快速比對

如果單看文字可能覺得差不多,直接拉成表格對照就很明顯了:
https://ithelp.ithome.com.tw/upload/images/20260911/20178900RpsoRLPwRq.png

今天的心得

今天親手測過才發現,如果要讓AI幫我寫程式碼、抓Bug,溫度真的不能設太高,維持在0到0.2這種低溫最穩,才不會每次給的寫法跳來跳去。但如果哪天需要它幫我想專案點子或是系統架構發想,把溫度拉到1就滿適合的。


上一篇
提示詞工程實戰:用結構化 Prompt 打造有原則的技術顧問(含 3 組邊界實測)
下一篇
加入對話變數,實測技術顧問能否針對新手與資深工程師給出不同回答
系列文
用 Dify 建構個人專屬 AI Agent 應用15
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言